package com.hymjweb.demo.hymj.master_bill_manage.auto.bean;

import com.hymjweb.demo.framework.util.pojoContrast.FieldMeta;
import lombok.Data;

import javax.persistence.Table;
import java.io.Serializable;
import java.util.Date;

@Table(name = "b_master_bill_auto")
@Data
public class BMasterBillAutoPojo implements Serializable {

    @FieldMeta(columnname = "id", name = "汽运主单ID")
    private String id;

    @FieldMeta(columnname = "transport_way_id", name = "承运方式ID",comment = "承运方式ID,关联xt_dic.id key='XT_DIC_TRANSPORT_WAY'")
    private Long transportWayId;

    @FieldMeta(columnname = "transport_unit_id", name = "承运单位ID",comment = "承运单位ID,关联b_out_unit.id,如果承运方式ID选择的是自发，那外就只以选择航燕敏捷做为承运人")
    private String transportUnitId;

    @FieldMeta(columnname = "transport_unit_master_bill_code_ids", name = "承运单位主单号IDS",comment = "承运单位主单号IDS,承运单位提供的主单号,可能会有多个,用半角逗号分隔")
    private String transportUnitMasterBillCodeIds;

    @FieldMeta(columnname = "start_city_id", name = "始发站ID",comment = "始发站ID,关联xt_city.id")
    private String startCityId;

    @FieldMeta(columnname = "dest_city_id", name = "目的站ID",comment = "目的站ID,关联xt_city.id")
    private String destCityId;

    @FieldMeta(columnname = "auto_line_road_name", name = "线路名称",comment = "线路名称")
    private String autoLineRoadName;

    @FieldMeta(columnname = "send_way_id", name = "派送方式ID",comment = "派送方式ID,关联xt_dic.id key='XT_DIC_SEND_WAY_TYPE'")
    private Long sendWayId;

    @FieldMeta(columnname = "pick_up_point_id", name = "提货点ID",comment = "提货点ID,关联xt_pick_up_point.id,该字段可以为空,如果承运方式是外发,则可以不用填写")
    private String pickUpPointId;

    @FieldMeta(columnname = "pick_up_point_name", name = "提货点名称",comment = "提货点名称,检索提货点的过滤条件是根据目的市,如果目的市没有填写给出提示")
    private String pickUpPointName;

    @FieldMeta(columnname = "pick_up_point_phone", name = "提货点电话",comment = "提货点电话")
    private String pickUpPointPhone;

    @FieldMeta(columnname = "pick_up_point_address", name = "提货点地址",comment = "提货点地址")
    private String pickUpPointAddress;

    @FieldMeta(columnname = "license_plate_number", name = "车牌号",comment = "车牌号")
    private String licensePlateNumber;

    @FieldMeta(columnname = "delivery_time", name = "走货时间",comment = "走货时间,就是发货日期")
    private Date deliveryTime;

    @FieldMeta(columnname = "driver", name = "驾驶员",comment = "驾驶员")
    private String driver;

    @FieldMeta(columnname = "driver_phone", name = "驾驶员电话",comment = "驾驶员电话")
    private String driverPhone;

    @FieldMeta(columnname = "goods_type_id", name = "货物类型ID",comment = "货物类型ID,关联xt_dic.id key='XT_DIC_GOODS_TYPE'")
    private Long goodsTypeId;

    @FieldMeta(columnname = "total_number", name = "总件数",comment = "总件数")
    private Long totalNumber;

    @FieldMeta(columnname = "actual_weight", name = "实际重量",comment = "实际重量")
    private Double actualWeight;

    @FieldMeta(columnname = "chargeable_weight", name = "计费重量",comment = "计费重量")
    private Double chargeableWeight;

    @FieldMeta(columnname = "actual_load_total_weight", name = "实际配载总重量",comment = "实际配载总重量,用于成本分摊计算")
    private Double actualLoadTotalWeight;

    @FieldMeta(columnname = "weight_rate", name = "重量费率",comment = "重量费率")
    private Double weightRate;

    @FieldMeta(columnname = "volume", name = "体积",comment = "体积")
    private Double volume;

    @FieldMeta(columnname = "volume_rate", name = "体积费率",comment = "体积费率")
    private Double volumeRate;

    @FieldMeta(columnname = "freight_amount", name = "运费合计",comment = "运费合计,运费合计 = 重量费率*实际重量 > 体积费率*体积 ？重量费率*实际重量 ： 体积费率*体积")
    private Double freightAmount;

    @FieldMeta(columnname = "other_charges", name = "其他费用",comment = "其他费用")
    private Double otherCharges;

    @FieldMeta(columnname = "other_charges_comment", name = "其他费用说明",comment = "其他费用说明")
    private String otherChargesComment;

    @FieldMeta(columnname = "master_bill_payment_method_id", name = "付款方式ID",comment = "付款方式ID,关联xt_dic.id key='XT_DIC_MASTER_BILL_PAYMENT_METHOD'")
    private Long masterBillPaymentMethodId;

    @FieldMeta(columnname = "total_freight_amount", name = "总运费",comment = "总运费,总运费=运费合计+其他费用")
    private Double totalFreightAmount;

    @FieldMeta(columnname = "drop_amount", name = "调整金额",comment = "调整金额，默认为0，如果不为0，则表示用于记录该主单拉货时添加调整费用，记正值表示需要向客户补收的费用金额，记负值时表示向客户退回的金额，该值应该就该主单下包含的所有拉货分单位调整金额之和")
    private Double dropAmount;

    @FieldMeta(columnname = "settlement_amount", name = "结算金额",comment = "结算金额 = 总运费 + 调整金额")
    private Double settlementAmount;

    @FieldMeta(columnname = "open_master_bill_date", name = "开单日期",comment = "开单日期,填写开单系统时间")
    private Date openMasterBillDate;

    @FieldMeta(columnname = "open_master_bill_department_id", name = "开单部门ID",comment = "开单部门ID")
    private String openMasterBillDepartmentId;

    @FieldMeta(columnname = "open_master_bill_user_id", name = "开单人ID",comment = "开单人ID,关联xt_user.id")
    private String openMasterBillUserId;

    @FieldMeta(columnname = "comment", name = "备注",comment = "备注")
    private String comment;

    @FieldMeta(columnname = "freight_amount_status_id", name = "运费结清状态ID",comment = "运费结清状态ID,,关联xt_dic.id key='XT_DIC_SETTLEMENT_STATUS'")
    private Long freightAmountStatusId;

    @FieldMeta(columnname = "drop_status_id", name = "拉货状态ID",comment = "拉货状态ID,关联xt_dic.id key='XT_DIC_DROP_STATUS',用于标识该主单是否拉过货")
    private Long dropStatusId;

    @FieldMeta(columnname = "account_check_status_id", name = "主单对账状态ID",comment = "主单对账状态ID,关联xt_dic.id key='XT_DIC_ACCOUNT_CHECK_STATUS'")
    private Long accountCheckStatusId;

    @FieldMeta(columnname = "settlement_status_id", name = "主单结算状态ID",comment = "主单结算状态,关联xt_dic.id key='XT_DIC_SETTLEMENT_STATUS',结算完成的前提是主单必须是已对账状态，如果是结算完成，则该主单不能再做任何信息调整")
    private Long settlementStatusId;

    @FieldMeta(columnname = "load_native_bill_ids", name = "配载分单号",comment = "配载分单号,格式为 id1,id2")
    private String loadNativeBillIds;

    @FieldMeta(columnname = "create_time", name = "创建时间")
    private Date createTime;

    @FieldMeta(columnname = "create_user_id", name = "记录添加人ID", comment = "关联XT_USER.ID")
    private String createUserId;

    @FieldMeta(columnname = "update_time", name = "更新时间")
    private Date updateTime;

    @FieldMeta(columnname = "update_user_id", name = "更新用户ID", comment = "关联XT_USER.ID")
    private String updateUserId;

}
